Chrome 137

Date de sortie de la version stable:27 mai 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la version du canal stable Chrome 137 pour Android, ChromeOS, Linux, macOS et Windows.

CSS et UI

Fonction CSS if()

La fonction CSS if() permet d'exprimer des valeurs conditionnelles de manière concise. Il accepte une série de paires condition-valeur, délimitées par des points-virgules. La fonction évalue chaque condition de manière séquentielle et renvoie la valeur associée à la première condition vraie. Si aucune des conditions n'est évaluée comme vraie, la fonction renvoie un flux de jetons vide. Vous pouvez ainsi exprimer une logique conditionnelle complexe de manière simple et concise.

Exemple :

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

Bug de suivi 346977961 | Enregistrement sur ChromeStatus.com | Spécification

Propriétés CSS reading-flow, reading-order

La propriété CSS reading-flow contrôle l'ordre dans lequel les éléments d'une mise en page flex, grid ou block sont exposés aux outils d'accessibilité et mis en surbrillance à l'aide de la navigation par tabulation.

La propriété CSS reading-order permet aux auteurs de remplacer manuellement l'ordre dans un conteneur de parcours de lecture. Il s'agit d'un entier dont la valeur par défaut est 0.

Pour en savoir plus sur ces propriétés, consultez Utiliser le flux de lecture CSS pour la navigation séquentielle logique de la sélection et essayez quelques exemples.

Bug 40932006 | Enregistrement sur ChromeStatus.com | Spécification

Ignorer l'espacement entre les lettres dans les écritures cursives

Cette fonctionnalité ajoute une logique pour ignorer le paramètre d'espacement des lettres pour les scripts cursifs, comme spécifié par le développeur, conformément aux spécifications, afin de s'assurer que l'espacement des lettres ne perturbe pas la structure des mots et vise à améliorer l'expérience utilisateur pour les utilisateurs qui s'appuient sur des scripts cursifs.

Grâce à cette fonctionnalité, Chrome garantit que les écritures cursives sont lisibles et correctement espacées, même si les polices ne disposent pas de fonctionnalités typographiques avancées.

Les scripts concernés dans Chromium sont l'arabe, le Hanifi Rohingya, le Mandaic, le mongol, le N'Ko, le Phags Pa et le syriaque, car ils sont considérés comme des scripts cursifs conformément aux spécifications.

Bug 40618336 | Enregistrement sur ChromeStatus.com | Spécification

API de sélection getComposedRanges et direction

Cette fonctionnalité propose deux nouvelles méthodes d'API pour l'API Selection:

  • Selection.direction, qui renvoie la direction de la sélection sous la forme none, forward ou backward
  • Selection.getComposedRanges(), qui renvoie une liste de 0 ou 1 composée StaticRange

Un StaticRange composé est autorisé à franchir les limites d'ombre, ce qui n'est pas le cas d'un Range normal.

Exemple :

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Si la sélection traverse une limite de racine d'ombre qui n'est pas fournie dans la liste shadowRoots, les points de terminaison de StaticRange seront redéfinis pour se trouver en dehors de cet arbre. Cela permet de s'assurer que Chrome n'expose pas d'arborescences d'ombre inconnues.

Bug 40286116 | Enregistrement sur ChromeStatus.com | Spécification

Soutenir offset-path: shape()

Prise en charge de offset-path: shape() pour permettre d'utiliser des formes responsives afin de définir le chemin d'animation.

Bug 389713717 en cours de suivi | Enregistrement sur ChromeStatus.com | Spécification

Prise en charge de l'attribut transform sur SVGSVGElement

Cette fonctionnalité permet d'appliquer des propriétés de transformation (telles que la mise à l'échelle, la rotation, la translation et l'inclinaison) directement à l'élément racine <svg> à l'aide de son attribut transform. Cette amélioration vous permet de manipuler l'ensemble du système de coordonnées SVG ou son contenu dans son ensemble, ce qui vous offre une plus grande flexibilité pour créer des graphiques vectoriels dynamiques, responsifs et interactifs. En prenant en charge cet attribut, l'élément <svg> peut être transformé sans nécessiter d'éléments de wrapper supplémentaires ni de solutions de contournement CSS complexes, ce qui simplifie le processus de création de graphiques Web évolutifs et animés.

Bug de suivi 40313130 | Enregistrement sur ChromeStatus.com | Spécification

Couleur d'accentuation du système pour la propriété accent-color

Vous pouvez ainsi utiliser la couleur d'accentuation du système d'exploitation pour les éléments de formulaire. En utilisant la propriété CSS accent-color, vous pouvez vous assurer que les éléments de formulaire tels que les cases à cocher, les boutons radio et les barres de progression adoptent automatiquement la couleur d'accentuation définie par le système d'exploitation de l'utilisateur. Cette fonctionnalité est disponible sur macOS depuis 2021 et est désormais compatible avec Windows et ChromeOS.

Bug 40764875 | Enregistrement sur ChromeStatus.com | Spécification

Autorisez <use> à référencer l'élément racine d'un document externe en omettant le fragment.

Cette fonctionnalité simplifie l'élément SVG <use> en assouplissant les exigences de référencement. Avant Chrome 137, vous deviez référencer explicitement les fragments dans le document SVG. Si aucun ID de fragment n'est fourni, <use> ne pourra pas résoudre la cible et rien ne sera affiché ni redirigé.

Par exemple: un élément <use> référençant un fichier externe avec un identifiant de fragment:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

Dans cet exemple, #icon est l'identifiant du fragment pointant vers un élément avec id="icon" dans myshape.svg.

Sans identifiant de fragment:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

Avec cette fonctionnalité, l'omission de fragments ou simplement le nom du fichier SVG externe fait référence automatiquement à l'élément racine, ce qui vous évite d'avoir à modifier le document référencé simplement pour attribuer un ID à la racine. Cette amélioration simplifie ce processus de modification manuelle et améliore l'efficacité.

Bug de suivi 40362369 | Enregistrement sur ChromeStatus.com | Spécification

Types de couleurs à virgule flottante pour le canevas

Permet d'utiliser des formats de pixel à virgule flottante (par opposition au point fixe 8 bits) avec CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D et ImageData.

Cela est nécessaire pour les applications de haute précision (par exemple, la visualisation médicale), les contenus à plage dynamique élevée et les espaces de couleurs de travail linéaires.

Bug 40245602 suivi | Enregistrement sur ChromeStatus.com | Spécification

view-transition-name: match-element

La valeur match-element génère un ID unique basé sur l'identité de l'élément et le renomme pour cet élément. Cette méthode est utilisée dans les applications monopages où l'élément est déplacé et que vous souhaitez l'animer avec une transition de vue.

Bug 365997248 | Enregistrement sur ChromeStatus.com | Spécification

Paiements

Aligner le type d'erreur généré pour la création d'identifiants WebAuthn payment: SecurityError devient NotAllowedError

Correction du type d'erreur généré lors de la création d'identifiants WebAuthn pour les identifiants payment. En raison d'une incompatibilité historique des spécifications, la création d'identifiants payment dans une iframe inter-origine sans activation de l'utilisateur génère une exception SecurityError au lieu d'une exception NotAllowedError, qui est celle générée pour les identifiants non liés aux paiements.

Il s'agit d'une modification destructive, mais qui ne concerne qu'un petit nombre d'utilisateurs. Le code qui détectait auparavant le type d'erreur généré (par exemple, e instanceof SecurityError) est affecté. Le code qui gère généralement les erreurs lors de la création d'identifiants (par exemple, catch (e)) continuera de fonctionner correctement.

Bug 41484826 | Enregistrement sur ChromeStatus.com | Spécification

API Web

Partitionnement des URL blob: extraction/navigation

Dans le cadre de la proposition Storage Partitioning, Chrome a implémenté le partitionnement de l'accès aux URL blob par clé de stockage (site de premier niveau, origine des frames et valeur booléenne has-cross-site-ancestor), à l'exception des navigations de niveau supérieur qui ne seront partitionnées que par origine de frame. Ce comportement est semblable à celui actuellement implémenté par Firefox et Safari, et aligne l'utilisation des URL blob sur le schéma de partitionnement adopté par d'autres API de stockage dans le cadre de Storage Partitioning. De plus, Chrome applique désormais "noopener" aux navigations de niveau supérieur initiées par le moteur de rendu sur des URL blob lorsque le site correspondant est de type intersites par rapport au site de premier niveau effectuant la navigation. Cela permet à Chrome d'adopter un comportement semblable à celui de Safari. Les spécifications concernées ont été mises à jour pour refléter ces changements.

Bug 40057646 en cours de suivi | Enregistrement sur ChromeStatus.com

Piles d'appels dans les rapports d'erreur provenant de pages Web qui ne répondent pas

Cette fonctionnalité capture la pile d'appels JavaScript lorsqu'une page Web ne répond plus en raison d'un code JavaScript exécutant une boucle infinie ou un autre calcul très long. Cela permet aux développeurs d'identifier la cause de l'absence de réponse et de la corriger plus facilement. La pile d'appels JavaScript est incluse dans l'API de signalement des plantages lorsque la raison ne répond pas.

Bug 1445539 suivi | Enregistrement sur ChromeStatus.com | Spécification

Document-Isolation-Policy

Document-Isolation-Policy permet à un document d'activer crossOriginIsolation pour lui-même, sans avoir à déployer COOP ou COEP, et quel que soit l'état crossOriginIsolation de la page. La règle est basée sur l'isolation de processus. De plus, les sous-ressources multi-origines non CORS du document seront chargées sans identifiants ou devront comporter un en-tête CORP.

Bug de suivi 333029146 | Enregistrement sur ChromeStatus.com | Spécification

Ed25519 dans la cryptographie Web

Cette fonctionnalité ajoute la prise en charge des algorithmes Curve25519 dans l'API Web Cryptography, à savoir l'algorithme de signature Ed25519.

Bug de suivi 1370697 | Enregistrement sur ChromeStatus.com | Spécification

Prévention du suivi HSTS

Limite le suivi des utilisateurs par des tiers à l'aide du cache HSTS.

Cette fonctionnalité n'autorise les mises à niveau HSTS que pour les navigations de niveau supérieur et bloque les mises à niveau HSTS pour les requêtes de sous-ressources. Cela empêche les sites tiers d'utiliser le cache HSTS pour suivre les utilisateurs sur le Web.

Bug 40725781 en cours de suivi | Enregistrement sur ChromeStatus.com

WebAssembly

Intégration de promesses JavaScript

L'intégration des promesses JavaScript (JSPI) est une API qui permet aux applications WebAssembly de s'intégrer aux promesses JavaScript.

Il permet à un programme WebAssembly d'agir en tant que générateur d'une promesse et d'interagir avec les API contenant des promesses.

En particulier, lorsqu'une application utilise JSPI pour appeler une API (JavaScript) portant une promesse, le code WebAssembly est suspendu. L'appelant d'origine du programme WebAssembly reçoit une promesse qui sera remplie lorsque le programme WebAssembly sera finalement terminé.

Enregistrement sur ChromeStatus.com | Spécification

Conseils de branche WebAssembly

Améliore les performances du code WebAssembly compilé en informant le moteur qu'une instruction de branche particulière est très susceptible de suivre un chemin spécifique.

Cela permet au moteur de prendre de meilleures décisions concernant la mise en page du code (amélioration des exécutions de cache d'instructions) et l'allocation de registres.

Enregistrement sur ChromeStatus.com | Spécification

WebGPU

GPUTextureView pour la liaison externalTexture

Un GPUTextureView est désormais autorisé à être utilisé pour une liaison externalTexture lors de la création d'un GPUBindGroup.

Bug 398752857 | Enregistrement sur ChromeStatus.com | Spécification

Surcharge de copyBufferToBuffer

La méthode copyBufferToBuffer() de GPUCommandEncoder inclut désormais un moyen plus simple de copier des tampons entiers à l'aide d'une nouvelle surcharge avec des décalages et des paramètres de taille facultatifs.

Enregistrement sur ChromeStatus.com | Spécification

Enterprise

Journalisation et création de rapports sur les adresses IP

Chrome Enterprise améliore ses fonctionnalités de surveillance de la sécurité et de réponse aux incidents en collectant et en signalant les adresses IP locales et distantes, puis en les envoyant aux journaux d'investigation de sécurité (SIT). De plus, Chrome Enterprise permettra aux administrateurs d'envoyer les adresses IP à des fournisseurs de solutions de gestion des informations et des événements de sécurité (SIEM, Security information and event management) propriétaires et tiers via le connecteur de reporting Chrome Enterprise.

Cette fonctionnalité est disponible pour les clients Chrome Enterprise Core.

Enregistrement sur ChromeStatus.com

Phases d'évaluation

Attribut de blocage du rendu pour la fréquence d'images complète

Ajoute un nouveau jeton de blocage du rendu full-frame-rate aux attributs de blocage. Lorsque le moteur de rendu est bloqué avec le jeton full-frame-rate, il fonctionne à un débit d'images inférieur afin de réserver plus de ressources pour le chargement.

Bug 397832388 en cours de suivi | Enregistrement sur ChromeStatus.com

Mettre en pause la lecture multimédia sur les iFrames non affichées

Ajoute une règle d'autorisation media-playback-while-not-rendered pour permettre aux sites Web d'intégration de mettre en pause la lecture multimédia des iFrames intégrées qui ne sont pas affichées, c'est-à-dire que leur propriété display est définie sur none. Cela devrait permettre aux développeurs de créer des expériences plus conviviales et d'améliorer les performances en laissant le navigateur gérer la lecture des contenus qui ne sont pas visibles par les utilisateurs.

Phase d'évaluation Origin | Bug de suivi 351354996 | Enregistrement sur ChromeStatus.com

API Rewriter

L'API Rewriter transforme et reformule le texte saisi de la manière demandée, avec l'aide d'un modèle de langage d'IA sur l'appareil. Les développeurs peuvent utiliser cette API pour supprimer les redondances dans un texte afin de respecter une limite de mots, reformuler des messages pour les adapter à l'audience visée ou pour être plus constructifs si un message utilise un langage toxique, reformuler un post ou un article pour utiliser des mots et des concepts plus simples, et plus encore.

Test Origin | Bug de suivi 358214322 | Enregistrement sur ChromeStatus.com | Spécification

API Writer

L'API Writer peut être utilisée pour rédiger de nouveaux contenus à partir d'une invite de tâche d'écriture, avec l'aide d'un modèle de langage d'IA sur l'appareil. Les développeurs pourront utiliser cette API pour générer des explications textuelles de données structurées, composer un post sur un produit en fonction des avis ou de la description du produit, développer des listes d'avantages et d'inconvénients en vues complètes, et plus encore.

Phase d'évaluation Origin | Bug 357967382 | Enregistrement sur ChromeStatus.com | Spécification